/**
 * 
 */
package truerefactor.refactor;

import java.util.List;

import truerefactor.graph.ClassNode;
import truerefactor.graph.CodeGraph;
import truerefactor.graph.CodeNode;

/**
 * An Implementation of the Hide Delegate Refactoring Technique
 * 
 * @author Isaac
 */
public class HideDelegate extends Refactoring {

    /**
     * 
     */
    public HideDelegate()
    {
        this.name = "Hide Delegate";
        this.description = "";
    }

    /*
     * (non-Javadoc)
     * @see
     * truerefactor.refactor.Refactoring#execute(truerefactor.graph.CodeNode
     * [])
     */
    @Override
    public void execute(CodeGraph graph)
    {
        // 1. For each method on the delegate, create a simple delegating method
        // on the server.

        // 2. Adjust the client to call the server.
        // a. If the client is not in the same package as the server, consider
        // changing the delegate method's access to package visibility

        // 3. IF no client needs to access the delegate anymore, remove the
        // server's accessor for the delegate.
    }
}
